package com.ref.demo6;

import org.junit.Test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Scanner;

/**
 * @ClassName EstimateYear
 * @Description 使用反射机制来实现用户输入一个年份，判断是闰年还是平年
 * @Author Kx
 * @Date 2025/3/17 16:34
 * @Version 1.0
 */
public class EstimateYear {
    public static void main(String[] args) {

        // 创建 Scanner 的对象
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入一个年份：");
        // 获取用户输入的年份
        int year = scanner.nextInt();

        try {
            // 1. 获取 LeapYearChecker 类的 class 对象
            Class<?> aClass = Class.forName("com.ref.demo6.LeapYearChecker");

            // 2. 获取 LeapYearChecker 类的构造方法对象
            Constructor<?> constructor = aClass.getConstructor();

            // 3. 实例化 LeapYearChecker 对象
            Object object = constructor.newInstance();

            // 4. 获取 LeapYearChecker 类的 方法对象
            Method method = aClass.getMethod("isLeapYear", int.class);

            // 5. 调用方法
            boolean isLeap = (boolean) method.invoke(object, year);

            // 6. 判断是否是闰年
            if (isLeap){
                System.out.println(year + "是闰年");
            }else {
                System.out.println(year + "是平年");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
}
